문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 C(프로그래밍 언어) (문단 편집) === 점유율과 플랫폼별 지원 현황 === 오랜 시간동안 [[Java]]와 함께 몇 년째 1, 2위를 다투고 '''있었다'''.[[http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html|출처]][* 현재는 [[Python]]이 1위를 차지하고 C언어는 2위, [[Java]]는 3위로 밀려났다. 4위와 5위는 각각 C언어의 파생언어(라고는 하지만 C언어와는 용도가 전혀 다르다.)인 [[C++]]와 [[C\#]]이다.] 그 이외의 언어와는 넘사벽의 비율을 보여준다. 그야말로 부동의 원투 펀치. 다른 언어들이 3위 경쟁을 하는 동안 C언어와 Java가 양대 산맥을 형성하고 있다. 좀 더 넓게 C언어 계열(C++, C# 등 C언어 문법 혹은 그와 '''매우''' 유사한 문법 체계를 사용하는 언어)와 JAVA 계열(Arduino 등 JAVA 문법 혹은 그와 '''매우''' 유사한 문법 체계를 사용하는 언어)로 보자면 C언어 계열이 단연코 확고한 1위. (C언어와 C++, C#만 합쳐도 1/3이다. 거기에 자바와 파이썬의 점유율을 합치면 거의 절반.) 가장 널리 쓰이는 PC 플랫폼인 [[Microsoft Windows|윈도우]]에서는 [[https://docs.microsoft.com/ko-kr/cpp/overview/install-c17-support?view=msvc-170|MSVC 2019 16.8 버전 이후부터 적극 지원 중이다.]] 사실 그 이전 [[Visual Studio]]는 VS개발진 본인들도 반쯤은 버려진 언어임을 인정하기도 했다.[* "For many years Visual Studio has only supported C to the extent of it being required for C++". [[https://devblogs.microsoft.com/cppblog/c11-and-c17-standard-support-arriving-in-msvc/|링크]] 참고.] MS에서는 C언어를 Internal language로 규정하여 내부적으로 윈도우와 기타 MS 상품들을 만드는 데는 사용하지만, C언어 프로그래밍 환경을 사용자에게 정식으로 제공하지는 않았다. 덕분에 윈도우가 자랑하는 [[Visual Studio]]에도 C언어 프로젝트 항목은 없으며, 정식으로 C11/C17을 지원하는 현재(VS 2019/VS 2022)도 기본 사양에는 C 프로젝트 템플릿이 포함되어 있지 않다. (C++ 프로젝트를 선택하여 소스 파일 확장자를 .c로 바꿔주거나 C언어로 컴파일한다고 프로젝트 옵션을 설정해야 한다.) 게다가, 기존에는 그런 식으로 사용을 하더라도 MS의 C언어 지원은 순수하게 C++에 묻어가는 정도라, 새로운 ISO 스탠다드인 C99/C11의 기능들도 거의 지원하지 않았다. 다행히 MSVC 2019 16.8부터는 정식으로 C11/C17을 지원하게 됐으므로 이제는 Visual Studio를 통해 최신 C언어를 경험할 수 있게 됐다. [[Linux|리눅스]]의 경우에는 [[GCC]]라는 사실상의 오픈소스 표준 컴파일러 덕분에 지원이 괜찮으며, Unix-like 운영체제라는 버프도 있고,[* C언어는 애초에 [[유닉스]] 운영체제를 만들기 위해 탄생한 언어이기 때문에 유닉스 운영체제와 시스템 궁합이 좋은 편이다.] C언어를 배우고 여러가지 시험해보면서 놀기에 적합한 환경을 제공해준다. 윈도우와 다르게 커널부터 오픈소스로 개발되고, 이 커널이 C언어로 만들어져 있어 C언어의 사용도 활발하다. 이쪽 프로그래머들은 개발 환경을 [[vim]]이나 [[Emacs]]로 사용하는 사람들이 많이 있다. [[macOS|macOS(구 OS X)]]는 신생 컴파일러인 [[LLVM]]/[[Clang]][* 사실, Clang은 GCC를 대체하는 것이 목표기 때문에 macOS 외에 [[FreeBSD]] 등의 유닉스 계열 운영체제에도 사용된다.]을 사용하며, 역시 지원은 좋은 편이다. 이는 플랫폼 메인 개발 언어를 Objective-C로 잡았기 때문인데, Objective-C는 C언어와 완전히 호환이 되기 때문에 달랑 Objective-C만 지원해도 C언어가 완전히 지원되는 셈. 새로운 스탠다드의 적용도 세 플랫폼 중 가장 빠르다. MS는 위에서 이야기했듯이 C++의 subset인 부분에 한해서만 C언어의 최신 표준을 지원하고, GCC와 LLVM/Clang은 C11을 모두 지원한다. C언어를 표준으로 공부하려면 현 시점에서는 성능이 우수하고 표준을 엄격하게 따르는 [[GCC]]나 [[LLVM]]/[[Clang]]을 사용하는 편이 좋다. 그러나 MSVC 2019 이전의 [[Visual Studio]]는 사용하지 않는 것이 좋다. 구버전 Visual Studio에 통합되어 있는 MSVC 컴파일러는 C99의 가변 길이 배열조차 지원하지 않을 만큼 C언어 지원이 부족했기 때문이다. MSVC 2019 16.8 이후에는 [[Visual Studio]]도 제대로 C11/C17을 지원하므로 윈도우 사용자라면 MSVC 2019 이상을 사용하는 것이 좋다. 만약 Visual Studio를 사용하지 않을 윈도우 사용자라 하더라도 MinGW와 같이 WSL와 달리 GCC/Clang을 사용해서 Win32 네이티브 바이너리를 컴파일하는 환경도 제공하고 있다. 특히 GCC, LLVM/Clang은 {{{#pedantic -Wall -Wextra -Werror}}} 컴파일 옵션[* MSVC의 경우 /Wall /WX /Za /permissive-]을 넣으면 사소한 경고 사항도 전부 에러로 변환하여 컴파일을 중단시키므로 코드의 품질을 잡는 데 많은 도움이 된다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기